package com.data.modules.es.entity;

import cn.easyes.annotation.HighLight;
import cn.easyes.annotation.IndexField;
import cn.easyes.annotation.IndexId;
import cn.easyes.annotation.IndexName;
import cn.easyes.common.constants.Analyzer;
import cn.easyes.common.enums.FieldType;
import cn.easyes.common.enums.IdType;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@Accessors(chain = true)
@IndexName(shardsNum = 3, replicasNum = 2, keepGlobalPrefix = true)
public class Acs {
    /**
     * es中的唯一id,如果你想自定义es中的id为你提供的id,比如MySQL中的id,
     * 请将注解中的type指定为customize或直接在全局配置文件中指定,如此id便支持任意数据类型)
     */
    @IndexId(type = IdType.CUSTOMIZE)
    private String id                                ;
    @IndexField(exist = false)
    private String Citations                         ;
    @IndexField(exist = false)
    private String JourPageRange                     ;
    private String AuthorName                        ;
    @IndexField(exist = false)
    private String JourYear                          ;
    @IndexField(exist = false)
    private String Subject_name                      ;
    @IndexField(exist = false)
    private String JourVolNum                        ;
    private String AbstractText                      ;
    @IndexField(exist = false)
    private String Altmetric                         ;
    @IndexField(exist = false)
    private String Keywords_list                     ;
    private String CiteTitle                         ;
    private String UpdateTableName                   ;
    private String DOIUrl                            ;
    private String TopTitle                          ;
    private String ids                               ;
    private String FullTextUrl                       ;
    /**
     * 创建时间
     */
    @IndexField(fieldType = FieldType.DATE, dateFormat = "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis")
    private String crawl_time                        ;
    /**
     * es中实际不存在的字段,但模型中加了,为了不和es映射,可以在此类型字段上加上 注解@TableField,并指明exist=false
     */
    @IndexField(exist = false)
    private String CopyRight                         ;
    /**
     * es中实际不存在的字段,但模型中加了,为了不和es映射,可以在此类型字段上加上 注解@TableField,并指明exist=false
     */
    @IndexField(exist = false)
    private String table_name                        ;
    private String DataBaseShortName                 ;
    private String ArticleViews                      ;
    private String UpdateStatus                      ;
    @HighLight(mappingField = "highlightContent")
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
    private String Title                             ;
    private String JourPubDate                       ;
    private String ListUrlMain                       ;
    /**
     * 文档内容,指定了类型及存储/查询分词器
     */
    @HighLight(mappingField = "highlightContent")
    @IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART, searchAnalyzer = Analyzer.IK_MAX_WORD)
    private String AbstractTextNoHtmllabel           ;
    private String articlePermissionsLink            ;
    private String JourIssueNum                      ;
    private String AbstractImgUrl                    ;
    private String PDFUrl                            ;
    @IndexField(exist = false)
    private String status_img_add                    ;
    private String isadded                           ;

    /**
     * 高亮返回值被映射的字段
     */
    private String highlightContent;
    /**
     * 文档点赞数
     */
    private Integer starNum;


}
